// 权限校验
// 在路由跳转前进行判断，如果已经进行登录操作允许访问非登录页，负责跳转登陆页

// to：即将要进入的目标对象
// from：即将要离开的路由对象
// next：一个方法，用于指定路由地址，进行路由跳转

import router from './router'
// 引入获取用户信息接口
import {getUserInfo} from './api/login'

router.beforeEach((to, from, next) => {
    // 1.获取token
    var token = localStorage.getItem('seeto-token')
    // 1.1 获取不到token
    if(!token){
        if(to.path != '/login'){
            next({path: '/login'})
        }else{
            next()
        }
    // 1.2 获取到token
    }else{
        if(to.path == '/login'){
            next()
        }else{
            const userInfo = localStorage.getItem('seeto-user')
            // 1.2.1 获取到用户信息
            if(userInfo){
                next()
            // 1.2.2 获取不到用户信息
            }else{
                getUserInfo(token).then(response => {
                    const resp = response.data
                    if(resp.flag){
                        localStorage.setItem('seeto-user', JSON.stringify(resp.data))
                        next()
                    }else{
                        next({path: '/login'})
                    }
                })
            }
        }
    }
})